/*
 * @Author: 
 * @Date: 2025-07-18 09:45:21
 * @LastEditTime: 2025-08-12 14:14:02
 * @Description: 
 */
class Utils {

  static String parseQRCode(String content, String field) {
    // 分割原始字符串（格式：V1:A04107RD:1 PCS:A037-0237-11312:SH-cqgghhhh0001）
    final parts = content.split(':');
    if (parts.length != 5) {
      throw FormatException('Invalid QR code.');
    }

    // 根据字段类型返回对应部分
    switch (field.toLowerCase()) {
      case 'version':
        return parts[0]; // V1
      case 'item number':
        return parts[1]; // A04107RD
      case 'product code':
        return parts[3]; // A037-0237-11312
      case 'order number':
        return parts[4]; // SH-cqgghhhh0001
      case 'pack key':
        return _parsePackKey(parts[1], parts[2]); // 特殊处理
      default:
        return '';
    }
  }

  /// 解析Pack Key并生成格式化字符串
  static String _parsePackKey(String itemNumber, String packKey) {
    // 分割Pack Key（格式示例："1 PCS" 或 "1PC"）
    final spaceIndex = packKey.indexOf(' ');
    String quantity;
    String unit;

    // 处理带空格和不带空格的情况
    if (spaceIndex != -1) {
      quantity = packKey.substring(0, spaceIndex);
      unit = packKey.substring(spaceIndex + 1);
    } else {
      // 处理无空格格式（如"1PC"）
      if (packKey.toLowerCase().endsWith('pc')) {
        quantity = packKey.substring(0, packKey.length - 2);
        unit = 'PC';
      } else if (packKey.toLowerCase().endsWith('pcs')) {
        quantity = packKey.substring(0, packKey.length - 3);
        unit = 'PCS';
      } else {
        throw FormatException('Invalid pack key: $packKey');
      }
    }

    // 根据单位类型映射为Case/Each
    final unitType = unit.toUpperCase() == 'PCS' ? 'Case' : 'Each';
    
    // 返回格式化字符串（示例：A04107RD--Case--1）
    return '$itemNumber--$unitType--$quantity';
  }


}